def remove_set(lst):
    """
    使用集合进行列表去重
    """
    return list(set(lst))


def remove_xunhuan(lst):
    """
    使用循环遍历进行列表去重
    """
    result = []
    for i in lst:
        if i not in result:
            result.append(i)
    return result


def remove_remove_fixed(lst):
    """
    使用remove方法进行列表去重（修正版）
    """
    temp_list = lst.copy()
    # 使用while循环避免遍历时修改的问题
    i = 0
    while i < len(temp_list):
        if temp_list.count(temp_list[i]) > 1:
            temp_list.remove(temp_list[i])
        else:
            i += 1
    return temp_list


def remove_best(lst):
    """
    最佳去重方法：使用字典保持顺序
    """
    return list(dict.fromkeys(lst))


# 测试数据
alist = ["a", "a", "b", "c", "c", "e", "b", "h", "h"]

# 使用封装后的函数
if __name__ == "__main__":
    print("原列表:", alist)
    print("集合去重:", remove_set(alist))
    print("循环去重:", remove_xunhuan(alist))
    print("remove去重:", remove_remove_fixed(alist))
    print("字典去重:", remove_best(alist))

    # 验证原列表未被修改
    print("原列表未被修改:", alist)